package com.chhuang.system.service;

import java.util.List;

import com.chhuang.core.bean.QueryBean;
import com.chhuang.core.service.IBaseService;
import com.chhuang.system.bean.UserWithRoleIdQueryBean;
import com.chhuang.system.mapper.ChUserRoleMapMapper;
import com.chhuang.system.po.ChUser;
import com.chhuang.system.po.ChUserRoleMap;

/**
* ChUserRoleMap IService
* @author ChHuang
* @date Fri Mar 03 13:08:17 CST 2017
*/
public interface IChUserRoleMapService extends IBaseService<ChUserRoleMapMapper, ChUserRoleMap> {
	
	/**
	 * 查询用户的角色
	 * @param userId
	 * @return
	 * @throws Exception
	 */
	public List<ChUserRoleMap> findByUserId(String userId) throws Exception;
	
	/**
	 * 根据用户编号删除角色与用户对应关系
	 * @param userId
	 * @return
	 * @throws Exception
	 */
	public int deleteByUserId(String userId) throws Exception;
	
	/**
	 * 根据用户编号数组批量删除角色与用户对应关系
	 * @param userIds
	 * @return
	 * @throws Exception
	 */
	public int deleteByUserIdArray(String[] userIds) throws Exception;
	
	/**
	 * 查询角色下的用户
	 * @param roleId
	 * @return
	 * @throws Exception
	 */
	public List<ChUserRoleMap> findByRoleId(String roleId) throws Exception;
	
	/**
	 * 根据角色编号删除角色与用户对应关系
	 * @param roleIds
	 * @return
	 * @throws Exception
	 */
	public int deleteByRoleIdArray(String[] roleIds) throws Exception;
	
	/**
	 * 根据用户编号和角色编号删除用户与角色的对应关系
	 * @param userId
	 * @param roleId
	 * @return
	 * @throws Exception
	 */
	public int deleteByUserIdRoleId(String userId, String roleId) throws Exception;
	
	/**
	 * 根据角色编号及用户的查询条件查找用户信息
	 * @param queryBean
	 * @return
	 * @throws Exception
	 */
	public QueryBean<ChUser> findUsersByRoleIdAndQueryConditions(UserWithRoleIdQueryBean queryBean) throws Exception;
}